home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 42 / PC Gamer IT CD 42 2-2.iso / win_update / i386 / it / ie5 / dcom95.exe / 1033 / RCDATA / CABINET / relnotes.txt < prev    next >
Text File  |  1999-02-10  |  36KB  |  779 lines

  1. DCOM95 1.3
  2. Note sulla versione
  3. Ultimo aggiornamento: 14 settembre 1998
  4.  
  5. DCOM95 fornisce il supporto Distributed COM per Microsoft(r)
  6. Windows(r) 95. Il protocollo per trasmissioni via cavo DCOM fornisce
  7. un supporto per comunicazioni affidabili, sicure ed efficienti tra i
  8. componenti COM (Component Object Model), quali i controlli ActiveX(r),
  9. gli script e le applet Java presenti su computer diversi di una rete
  10. LAN, di una rete WAN o di Internet. Con DCOM, l'applicazione pu≥
  11. essere distribuita tra le ubicazioni pi∙ adatte al cliente e
  12. all'applicazione.
  13.  
  14. Per ulteriori informazioni, fare riferimento alla documentazione
  15. tecnica su DCOM disponibile presso la home page Microsoft COM
  16. all'indirizzo http://www.microsoft.com/com/ (informazioni in lingua
  17. inglese).
  18.  
  19. Sommario
  20. ========
  21. I.   Nuove caratteristiche
  22. II.  Soluzioni ai problemi
  23. III. Problemi noti
  24. IV.  Differenze con DCOM per Windows NT
  25. V.   Ridistribuzione
  26. VI.  Supporto tecnico e risorse aggiuntive
  27. VII. Elenco di file
  28.  
  29. I. Nuove caratteristiche
  30. ---------------
  31.  
  32. Sostituzione non consentita di DCOM95 con versioni precedenti
  33.  
  34. Nelle precedenti versioni di DCOM95 era possibile sostituire una
  35. versione successiva di DCOM95 con una precedente. Ora i numeri di
  36. versione vengono verificati in fase di installazione e non Φ possibile
  37. installare una versione precedente su una successiva. Questa modifica
  38. consente di eliminare i problemi provocati da versioni incompatibili
  39. di DLL.
  40.  
  41. Supporto per il controllo dei processi di Visual Studio 6.0 
  42.  
  43. Come supporto di Visual Studio 6.0, DCOM95 fornisce agli sviluppatori
  44. informazioni sul controllo per consentire la comprensione del
  45. comportamento, della struttura e delle prestazioni delle applicazioni.
  46. Utilizzare sempre questa versione di DCOM95 se si utilizza Visual
  47. Studio Analyzer in un computer che esegue Windows 95.
  48.  
  49. Creazione di una nuova directory durante l'installazione 
  50.  
  51. In fase di installazione, all'interno della directory di sistema viene
  52. creata una directory DCOM95 nella quale vengono memorizzati il filedel
  53. Contratto di Licenza dell'utente finale e altri file.All'interno della
  54. directory DCOM95, viene inoltre creata anche una sottodirectory OLDOLE
  55. nella quale viene conservata la copia di backup di tutti i precedenti
  56. file DCOM95 o OLE. Questi file vengono ripristinati alla
  57. disinstallazione di questa versione di DCOM95.
  58.  
  59. COM Internet Services
  60.  
  61. Attraverso il protocollo COM, CIS (COM Internet Services) consente la
  62. connessione di client e server su Internet. CIS comprende:
  63. *    Un nuovo protocollo DCOM, Tunneled TCP 
  64. *    Un nuovo tipo di moniker, moniker OBJREF 
  65. *    Una nuova utilitα CISCNFG
  66.  
  67. Per il supporto client CIS in Windows 95, installare DCOM95 e DCOMCFG,
  68. quindi utilizzare l'utilitα CISCNFG, installata insieme all'utilitα di
  69. configurazione DCOM, per modificare la chiave del registro di
  70. configurazione che definisce il protocollo da utilizzare per i
  71. processi remoti. Nella finestra del promptdei comandi immettere:
  72.     ciscnfg <protocollo>
  73.  
  74. Dove <protocollo> corrisponde a:
  75. *    rpc per il protocollo RPC
  76. *    http per il protocollo HTTP
  77. *    tcp_http per utilizzare dapprima il protocollo TCP, quindi, in
  78.         presenza di un eventuale timeout del server, il protocollo HTTP.
  79.  
  80. L'immissione del comando ciscnfg senza opzioni consente di
  81. visualizzare le informazioni sul relativo utilizzo.
  82.  
  83. Non sono richiesti aggiornamenti SDK per il protocollo Tunneled TCP. 
  84.  
  85. Sono richiesti, invece, alcuni aggiornamenti per i moniker OBJREF. 
  86.  
  87. CreateObjrefMoniker
  88.  
  89. Crea un moniker OBJREF basato su un puntatore a un oggetto.
  90. WINOLEAPI CreateObjrefMoniker(
  91.     LPUNKNOWN pUnk, //Puntatore all'oggetto
  92.     LPMONIKER *ppMk //Indirizzo del puntatore al moniker OBJREF
  93. );
  94.  
  95. Parametri
  96.  
  97. pUnk
  98.  
  99. Puntatore all'interfaccia IUnknown sull'oggetto rappresentato dal
  100. moniker.
  101.  
  102. ppMk
  103.  
  104. Indirizzo di un puntatore all'interfaccia IMoniker nel moniker OBJREF
  105. creato.
  106.  
  107. Valori restituiti
  108.  
  109. Questa funzione restituisce i valori standard E_OUTOFMEMORY e
  110. E_UNEXPECTED, oltre al seguente valore:
  111.  
  112. S_OK
  113.  
  114. Il valore indica che la creazione del moniker OBJREF Φ riuscita.
  115.  
  116. Osservazioni
  117.  
  118. I client utilizzano i moniker OBJREF per ottenere un puntatore su cui
  119. Φ stato eseguito il marshaling a un oggetto in esecuzione nello spazio
  120. di indirizzamento del server. Il server effettua in genere una
  121. chiamata a CreateObjrefMoniker per creare un moniker OBJREF, quindi
  122. effettua una chiamata almetodo IMoniker::GetDisplayName e infine
  123. rilascia il moniker. Il nome delmoniker OBJREF viene visualizzato nel
  124. formato:
  125.     OBJREF:nnnnnnnn 
  126.  
  127. Dove nnnnnnnn rappresenta una stringa con codifica base-64
  128. arbitrariamente lunga che racchiude l'ubicazione del computer, il
  129. termine di trasmissione del processo e l'ID del puntatore
  130. all'interfaccia (IPID) dell'oggetto in esecuzione. 
  131.  
  132. La stringa visualizzata pu≥ essere quindi trasferita al client in
  133. formato testo. ╚ ad esempio possibile richiamare questa stringa in una
  134. pagina HTML scaricabile dal client. 
  135.  
  136. Il client pu≥ passare questa stringa a MkParseDisplayName, che a sua
  137. volta crea un moniker OBJREF. Una chiamata al metodo
  138. IMoniker::BindToObject del moniker consente di ottenere un puntatore
  139. su cui Φ stato eseguito il marshaling all'istanza in esecuzione sul
  140. server. Un componente COM sul lato server contenuto in una pagina ASP
  141. pu≥ ad esempio creare un moniker OBJREF, ottenerne una stringa e
  142. scrivere tale stringa in un file in formato HTML da inviare al browser
  143. del client. Uno script in esecuzione sul client pu≥ utilizzare questa
  144. stringa per accedere all'oggetto in esecuzione. Uno script Visual
  145. Basic sul lato client pu≥ ad esempio memorizzare la stringa
  146. visualizzata in una variabile denominata strMioNome e includere questa
  147. riga:
  148.     oggMiaIstanza = GetObject(strMioNome)
  149.  
  150. Il motore dello script effettua internamente chiamate al metodo
  151. MkParseDisplayName e IMoniker::BindToObject; a questo punto, per
  152. richiamare direttamente l'oggetto in esecuzione, lo script pu≥
  153. utilizzare oggMiaIstanza.
  154.  
  155. Se l'oggetto in esecuzione utilizza IPID statici e il processo server
  156. viene sempre eseguito sullo stesso computer in un termine di
  157. trasmissione ben definito, la stringa visualizzata del moniker OBJREF
  158. sarα sempre la stessa. In questo caso, il server pu≥ memorizzare la
  159. stringa visualizzata invece di calcolarla ogni volta che riceve una
  160. richiesta per tale oggetto. 
  161.  
  162. IMoniker - Implementazione del moniker OBJREF
  163.  
  164. I moniker OBJREF rappresentano un riferimento a un'istanza di oggetti
  165. in esecuzione su un server out-of-process, in locale o in remoto. Il
  166. moniker identifica l'istanza di oggetti e il computer sul quale Φ in
  167. esecuzione l'oggetto. 
  168.  
  169. Per molti versi, il moniker OBJREF Φ simile a un moniker di puntatore,
  170. se si esclude che l'oggetto in esecuzione Φ out-of-process. Un client
  171. pu≥ effettuare una chiamata a IMoniker::BindToObject su un moniker
  172. OBJREF e utilizzare il puntatore che ne ottiene per accedere
  173. all'oggetto in esecuzione, indipendentemente dall'ubicazione. 
  174.  
  175. Una differenza importante con il moniker di puntatore Φ che la stringa
  176. visualizzata di un moniker OBJREF pu≥ essere richiamata in una pagina
  177. HTML e l'oggetto in esecuzione rappresentato dal moniker pu≥ essere
  178. associato da uno script, un'applet o un controllo ActiveX del client.
  179.  
  180. Tempi di utilizzo
  181.  
  182. Lo scopo principale di un moniker OBJREF Φ quello di ottenere
  183. l'accesso a un'istanza di oggetti in esecuzione su Internet. Una
  184. pagina ASP o qualsiasi altro controllo che consenta di generare un
  185. output HTML dinamico include la stringa visualizzata di un moniker
  186. OBJREF in un parametro di un'applet o di un controllo ActiveX. Il
  187. codice dell'applet o del controllo richiama il metodo
  188. CreateObjrefMoniker per creare un moniker OBJREF in base alla stringa
  189. visualizzata, quindi richiama il metodo IMoniker::BindToObject nel
  190. moniker OBJREF risultante per ottenere l'accesso all'istanza di
  191. oggetti in esecuzione. La pagina ASP esegue quindi il marshaling di un
  192. puntatore all'oggetto in esecuzione al client della pagina. 
  193.  
  194. Osservazioni
  195.  
  196. IMoniker::BindToObject. Nel caso di moniker OBJREF, il parametro
  197. pmkToLeft deve essere NULL. PoichΘ il moniker OBJREF rappresenta un
  198. oggetto in esecuzione, non viene attuata nessuna attivazione. Se
  199. l'oggetto rappresentato non Φ pi∙ in esecuzione, BindToObject
  200. restituisce l'errore E_UNEXPECTED. 
  201.  
  202. IMoniker::BindToStorage. Con questo metodo si ottiene un puntatore su
  203. cui Φ stato eseguito il marshaling all'interfaccia richiesta sull'area
  204. di memorizzazione contenente l'oggetto in esecuzione. PoichΘ il
  205. moniker OBJREF rappresenta un oggetto in esecuzione, non viene attuata
  206. nessuna attivazione. Se l'oggetto rappresentato non Φ pi∙ in
  207. esecuzione, BindToStorage restituisce l'errore E_UNEXPECTED. 
  208.  
  209. IMoniker::Reduce. Questo metodo restituisce MK_S_REDUCED_TO_SELF e
  210. passa di nuovo lo stesso moniker.
  211.  
  212. IMoniker::ComposeWith. Se pmkRight Φ un anti-moniker, il moniker
  213. restituito Φ NULL. Se pmkRight Φ a struttura mista e il primo
  214. componente da sinistra Φ un anti-moniker, il moniker restituito Φ a
  215. struttura mista e senza anti-moniker. Se pmkRight non Φ nΘ un
  216. anti-moniker nΘ un moniker a struttura mista e il primo componente da
  217. sinistra Φ un anti-moniker, il metodo verifica il parametro
  218. fOnlyIfNotGeneric. Se Φ FALSE, il metodo combina i due moniker in un
  219. moniker generico a struttura mista; se Φ TRUE, il metodo imposta
  220. *ppmkComposite su NULL e restituisce MK_E_NEEDGENERIC.
  221.  
  222. IMoniker::Enum. Questo metodo restituisce il valore S_OK e imposta
  223. ppenumMoniker su NULL. 
  224.  
  225. IMoniker::IsEqual. Questo metodo restituisce il valore S_OK se
  226. *pmkOther Φ un moniker OBJREF e i percorsi per entrambi i moniker sono
  227. identici (verificabile con un confronto che non consideri le maiuscole
  228. e le minuscole). In caso contrario, il metodo restituisce il valore
  229. S_FALSE.
  230.  
  231. IMoniker::Hash. Questo metodo calcola un valore hash per il moniker.
  232.  
  233. IMoniker::IsRunning. PoichΘ i moniker OBJREF rappresentano un'istanza
  234. di oggetti in esecuzione, questo metodo restituisce il valore TRUE, a
  235. meno che l'oggetto non sia pi∙ in esecuzione perchΘ non Φ riuscita una
  236. chiamata recente. Il metodo ignora il parametro pmkToLeft.
  237.  
  238. IMoniker::GetTimeOfLastChange. Questo metodo restituisce il valore
  239. E_NOTIMPL.
  240.  
  241. IMoniker::Inverse. Questo metodo restituisce un anti-moniker, ovvero
  242. il risultato di una chiamata CreateAntiMoniker.
  243.  
  244. IMoniker::CommonPrefixWith. Se due moniker sono uguali, questo metodo
  245. restituisce MK_S_US e imposta *ppmkPrefix su NULL. Se uno dei due
  246. moniker non Φ un moniker OBJREF, il metodo passa entrambi i moniker
  247. alla funzione MonikerCommonPrefixWith. Questa funzione gestisce
  248. correttamente i casi in cui uno dei moniker Φ a struttura mista
  249. generica.
  250.  
  251. Se non Φ disponibile un prefisso comune, il metodo restituisce MK_E_.
  252.  
  253. IMoniker::RelativePathTo. Questo metodo restituisce il valore
  254. E_NOTIMPL. IMoniker::GetDisplayName. Questo metodo ottiene la stringa
  255. visualizzata per il moniker OBJREF. Questa Φ una stringa con codifica
  256. a 64 bit che racchiude l'ubicazione del computer, il termine di
  257. trasmissione del processo e l'ID del puntatore all'interfaccia (IPID)
  258. dell'oggetto in esecuzione. Per garantire una compatibilitα futura, la
  259. stringa visualizzata Φ limitata a quei caratteri che possono essere
  260. specificati come parte di un URL.
  261.  
  262. IMoniker::ParseDisplayName. Se il parametro pmkToLeft non Φ NULL,
  263. questo metodo restituisce MK_E_SYNTAX.
  264.  
  265. IMoniker::IsSystemMoniker. Questo metodo restituisce il valore S_OK e
  266. passa di nuovo MKSYS_OBJREFMONIKER. 
  267.  
  268. Supporto per tipi di dati VB6.0
  269.  
  270. Visual Basic« 6.0 consente alle varianti Visual Basic di contenere
  271. strutture di dati definite dall'utente. Ora DCOM95 supporta la
  272. gestione remota di queste varianti.
  273.  
  274. II. Soluzioni ai problemi
  275. -------------------------
  276.  
  277. Condizione di competizione durante lo scaricamento di pi∙ moduli
  278.  
  279. Nelle precedenti versioni di DCOM95, si verificava una violazione di
  280. accesso quando venivano scaricati contemporaneamente pi∙ moduli. La
  281. violazione dipendeva dall'ordine in cui venivano scaricati i moduli.
  282. Questo errore Φ stato corretto in questa versione di DCOM95.
  283.  
  284. Assenza di risposta del desktop durante le negoziazioni del protocollo
  285. RPC
  286.  
  287. Nelle versioni precedenti di DCOM95 non venivano visualizzati messaggi
  288. durante le negoziazioni di protocolli RPC. In alcuni casi, se l'utente
  289. avviava un'applicazione mentre venivano negoziati i protocolli RPC, il
  290. computer sembrava non rispondere. Dopo 30 secondi, veniva ripresa
  291. l'elaborazione dei messaggi. Questo tipo di risposta Φ stato corretto
  292. nell'ultima versione di DCOM95 e le applicazioni possono essere
  293. avviate durante la negoziazione dei protocolli RPC. 
  294.  
  295. Assenza di risposta del desktop durante l'avvio di una nuova
  296. applicazione
  297.  
  298. Il protocollo RPC crea una finestra nascosta nell'MTA
  299. (Multiple-Threaded Apartment), che non gestisce i messaggi richiesti
  300. mediante DCOM.Quando viene avviata una nuova applicazione dal desktop,
  301. Windows notifica questo evento inviando un messaggio a tutti gli altri
  302. handle di finestre e resta in attesa di una risposta. Nelle versioni
  303. precedenti di DCOM95 la finestra RPC nascosta non forniva alcuna
  304. risposta, provocando il blocco di Windows. In questa versione di
  305. DCOM95 il problema Φ stato risolto e la finestra RPC non blocca pi∙ il
  306. desktop quando vengono avviate nuove applicazioni. 
  307.  
  308. Danneggiamento dell'heap in presenza di pi∙ indirizzi IP
  309.  
  310. In alcune situazioni se veniva avviata una versione precedente di
  311. DCOM95 su un computer con pi∙ di un indirizzo IP, il buffer degli
  312. indirizzi IP risultava sovraccaricato, provocando il danneggiamento
  313. dell'heap. Questo problema Φ stato risolto nell'ultima versione di
  314. DCOM95. 
  315.  
  316. Utilizzo del primo indirizzo IP utile
  317.  
  318. Se si avviava una versione precedente di DCOM95 su un computer dotato
  319. di due schede di rete e quindi di due indirizzi IP, ciascuno assegnato
  320. a una scheda diversa, DCOM95 utilizzava soltanto una scheda di rete.
  321. In questa versione di DCOM95, se il primo indirizzo non Φ adatto,
  322. viene utilizzato il secondo.
  323.  
  324. Utilizzo di pi∙ indirizzi IP con RPC
  325.  
  326. Nell'esecuzione di una chiamata di procedura remota (RPC, Remote
  327. Procedure Call) a un computer con pi∙ indirizzi IP, verranno provati
  328. altri indirizzi IP se la connessione con il primo non riesce.
  329.  
  330. Sintassi di percorso aggiuntiva supportata dai moniker di file
  331.  
  332. I moniker di file ora possono essere creati senza considerare il
  333. formato <dirinizio><percorsorelativo>, ad esempio
  334. "C:\bug\bug\..\..\foo.jpg". In DCOM95 1.1 erano consentiti soltanto
  335. percorsi relativi, ad esempio "..\..\foo.jpg", o assoluti,
  336. "C:\foo.jpg".
  337.  
  338. Errore di protezione generale durante lo scaricamento della libreria
  339. Oleaut32.dll
  340.  
  341. Nelle versioni precedenti di DCOM95 si verificava un errore di
  342. protezione generale quando veniva scaricata la libreria Oleaut32.dll
  343. prima di una chiamata a CoUninitialize. Questa situazione si
  344. verificava molto spesso quando un'applicazione VB creava un controllo
  345. collegato in modo statico alla libreria Oleaut32.dll, quindi lo
  346. rilasciava prima di effettuare la chiamata a CoUninitialize. Questo
  347. errore di protezione generale Φ stato risolto nell'ultima versione di
  348. DCOM95.
  349.  
  350. Marshaling e unmarshaling di tipi in Visual Basic
  351.  
  352. ╚ stato risolto il problema del marshaling e dell'unmarshaling di
  353. alcuni tipi di dati Visual Basic. Ora Φ possibile utilizzare parametri
  354. di matrice di dimensioni superiori ai 64 KB. Delle strutture definite
  355. mediante alias del tipo viene ora effettuato correttamente il
  356. marshaling e l'unmarshaling.
  357.  
  358. Troppe eliminazioni di atomi in OleUninitialize
  359.  
  360. Questo problema era stato evidenziato nelle applicazioni che chiamano
  361. OleInitialize e OleUninitialize pi∙ volte. Durante l'inizializzazione,
  362. OLE aggiunge numerosi atomi per l'RPC DDE. Se sono giα stati aggiunti
  363. atomi da un altro thread, non ne vengono aggiunti altri. Tuttavia,
  364. durante la fase di fine inizializzazione, gli atomi vengono sempre
  365. eliminati e gli handle non vengono annullati. Di conseguenza, nel
  366. momento in cui veniva effettuata una nuova chiamata a OleInitialize,
  367. gli handle precedenti continuavano a essere presenti sebbene gli atomi
  368. fossero stati giα eliminati e non fosse previsto di aggiungernealtri
  369. da OLE. Tutti gli atomi OLE venivano invalidati dopo numerose chiamate
  370. a OleInitialize e OleUninitialize. Il problema Φ stato risolto in
  371. questa versione di DCOM95. 
  372.  
  373. Arresto corretto dei server ADO
  374.  
  375. Active Data Objects (ADO) utilizza i moniker di puntatore per avviare
  376. un processo server. Le versioni precedenti di DCOM95 presentavano un
  377. problema relativo al numero di riferimenti del moniker di puntatore,
  378. per i quali venivano creati moniker di puntatore con un numero di
  379. riferimento iniziale di 1 invece di 0. Di conseguenza, il numero di
  380. riferimento del moniker di puntatore non veniva mai riportato a zero e
  381. il moniker non veniva rilasciato, rendendo impossibile l'arresto dei
  382. server ADO anche dopo il rilascio dell'ultimo puntatore. Il problema Φ
  383. stato risolto in questa versione di DCOM95.
  384.  
  385. Funzionamento di CoCreateInstance con un proprio nome DNS
  386.  
  387. Nelle versioni precedenti di DCOM95 la chiamata a CoCreateInstance con
  388. il nome assoluto del computer locale non aveva esito positivo. Questo
  389. problema Φ stato risolto nella versione corrente di DCOM95 e ora
  390. CoCreateInstance crea un'istanza sul computer locale.
  391.  
  392. Commit lento sull'area di memorizzazione principale per file composti
  393. molto ampi
  394.  
  395. Nelle versioni precedenti di DCOM95 il commit sull'area di
  396. memorizzazione principale aperto nella modalitα STGM_TRANSACTED
  397. rallentava enormemente al crescere dei file composti, ad esempio 400
  398. MB. I limiti della tabella di pagina interna sono stati aumentati e
  399. questo non costituisce pi∙ un problema.
  400.  
  401. Esportazione di oggetti da un MTA ricreato
  402.  
  403. Nelle versioni precedenti di DCOM95 un server non era in grado di
  404. esportare un oggetto da un MTA (Multi-Threaded Apartment) se questo
  405. veniva creato per la prima volta nel processo. Questo problema Φ stato
  406. risolto. Se ora un server crea un MTA, lo distrugge e subito dopo ne
  407. crea uno nuovo; in questo modo, Φ possibile esportare oggetti
  408. dall'MTA.
  409.  
  410. Istanze multiple di eseguibili di Visual Basic 4
  411.  
  412. In DCOM95 versione 1.1 se venivano avviate pi∙ istanze dello stesso
  413. eseguibile di Visual Basic 4, quindi venivano chiuse in un ordine
  414. diverso da quello indicato dal metodo LIFO (Last-In First-Out),
  415. l'ultimo exe veniva bloccato. Una situazione analoga si verificava con
  416. i moduli di posta elettronica di Microsoft Exchange. Questo problema Φ
  417. stato risolto nell'ultima versione di DCOM95. Adesso Φ possibile
  418. chiudere gli exe di Visual Basic 4 in qualsiasi ordine.
  419.  
  420. Caratteri estesi in nomi file di Visual Basic
  421.  
  422. Se a un modulo o a una classe Visual Basic venivano assegnati nomi con
  423. caratteri estesi di una determinata lingua, il file corrispondente
  424. poteva non essere aperto sui computer configurati con impostazioni
  425. locali diverse. Questo problema Φ stato risolto.
  426.  
  427. III. Problemi noti
  428. -----------------
  429.  
  430. Corel WordPerfect Suite 7: errore di pagina non valida durante
  431. l'installazione
  432.  
  433. Se si installa Corel WordPerfect Suite 7 in un sistema Windows 95 con
  434. DCOM95 in esecuzione, Φ possibile che si verifichi un errore di pagina
  435. non valida in PfOd70.pfc durante l'installazione. Se si verifica
  436. questo errore, chiudere la corrispondente finestra di messaggio.
  437. L'installazione dovrebbe continuare regolarmente.
  438.  
  439. Microsoft Access95: mancata esecuzione della replica dei database
  440.  
  441. Se si prova a replicare un database Access mediante Microsoft Access
  442. 95 su computer sui quali Φ installato DCOM95, Φ possibile che venga
  443. visualizzato il seguente messaggio di errore: 
  444.  
  445. Impossibile trovare o inizializzare la DLL Msjtrclr. Operazione non
  446. completata.
  447.  
  448. Questo Φ un problema di Microsoft Access 95. ╚ possibile ovviarlo
  449. scrivendo un programma che utilizzi il modello di oggetti di Access
  450. invece dello strumento di replica oppure utilizzando Sincronia file
  451. per la replica. Questo problema non si verifica in Microsoft Access
  452. 97. 
  453.  
  454. WordPerfect 
  455.  
  456. Se in un documento WordPerfect viene richiamato un foglio di calcolo
  457. di Corel e tale foglio a sua volta richiama un altro oggetto, ad
  458. esempio una bitmap, Φ possibile che venga visualizzato un messaggio di
  459. avviso in cui si notifica che viene persa la connessione alla rete se
  460. si chiude l'oggetto pi∙ interno. Possono essere visualizzati fino a
  461. quattro o cinque messaggi simili. Tutti questi avvisi non
  462. costituiscono un problema. ╚ sufficiente chiudere le relative finestre
  463. e continuare.
  464.  
  465. I client MTA che utilizzano le routine di conversione BSTR possono
  466. bloccare i messaggi DDE
  467.  
  468. Le routine di conversione BSTR per l'automazione, ad esempio
  469. BstrFromR4, creano finestre nascoste per facilitare la conversione dei
  470. tipi. Queste finestre non gestiscono la coda di messaggi di Windows.
  471. Se viene creata una di queste finestre in un client MTA, Φ possibile
  472. che vengano bloccati i messaggi DDE. Secondo il modello di
  473. programmazione MTA, il thread del client non deve necessariamente
  474. gestire la coda di messaggi. In caso contrario, questa finestra di
  475. livello superiore provoca il blocco della trasmissione globale dei
  476. messaggi.
  477.  
  478. Questa situazione pu≥ essere risolta in due modi: chiamando le routine
  479. di conversione BSTR da un client STA (Single-Threaded Apartment)
  480. oppure adeguando l'MTA del client a thread STA. Un thread STA deve
  481. necessariamente gestire la coda di messaggi. Se il thread viene
  482. bloccato in un handle win32, deve chiamare la funzione
  483. MsgWaitForMultipleObjects per distribuire contemporaneamente i
  484. messaggi di Windows. 
  485.  
  486. I nomi di percorso delle DLL pi∙ lunghi di 127 caratteri provocano
  487. degli errori
  488.  
  489. Se si registra una DLL con un nome di percorso di 128 caratteri o
  490. superiore,la registrazione avrα esito positivo, ma CoCreateInstance o
  491. CoGetClassObjectrestituiranno un errore (REGDB_E_CLASSNOTREG) quando
  492. si accede a un oggetto supportato da tale DLL.
  493.  
  494. IV. Differenze con DCOM per Windows NT
  495. ---------------------------------------
  496.  
  497. Funzioni di protezione di DCOM95
  498.  
  499. La funzionalitα di base e l'interfaccia per la programmazione di
  500. applicazioni (API) di DCOM95 sono identiche sia in Windows 95 sia in
  501. Windows NT 4.0/5.0. Alcune funzioni relative alla protezione sono
  502. tuttavia diverse a causa delle diverse infrastrutture di protezione
  503. dei sistemi operativi. Si consiglia di utilizzare le impostazioni di
  504. protezione predefinite del sistema in uso, inoltre Φ necessario
  505. attivare la protezione "a livello utente" nel caso di condivisione del
  506. file system. Per ulteriori informazioni, fare riferimento a quanto
  507. illustrato di seguito.
  508.  
  509. I servizi che seguono possono essere utilizzati in sostituzione delle
  510. impostazioni di protezione predefinite: 
  511. *    CoInitializeSecurity 
  512. *    CoQueryAuthenticationService 
  513. *    CoQueryProxyBlanket 
  514. *    CoSetProxyBlanket 
  515. *    CoQueryClientBlanket 
  516. *    Interfaccia IClientSecurity 
  517. *    Interfaccia IServerSecurity 
  518.  
  519. Tuttavia, alcune funzioni di DCOM per Windows NT non sono disponibili
  520. in Windows 95 a causa di differenze nell'infrastruttura di protezione
  521. di Windows 95.
  522.  
  523. In particolare, Φ da tenere in considerazione la mancanza di funzioni
  524. di protezione nell'API Win32, ad esempio la possibilitα di creare file
  525. ACL (Access Control List, Elenco di controllo di accesso), e della
  526. funzione AccessCheck, cos∞ come la mancanza di un contesto di
  527. sicurezzaassociato ai token di thread e di processo. Windows 95 di per
  528. sΘ non supporta queste funzioni o costrutti. Per questo motivo, DCOM95
  529. non supporta la rappresentazione (in modo specifico, le funzioni di
  530. guida CoImpersonateClient e CoRevertToSelf nell'interfaccia
  531. IServerSecurity), che si basa sulla protezione a livello di token di
  532. thread e di processo in Windows NT 4.0. La rappresentazione viene
  533. comunemente utilizzata per controllare automaticamente l'accesso a
  534. risorse di sistema limitate, ad esempio il file system, la rete e
  535. altri processi. Queste risorse non sono limitate in Windows 95. 
  536.  
  537. DCOM95, tuttavia, offre ai programmatori diversi oggetti di guida che
  538. consentono una funzionalitα ACL e un controllo dell'accesso, che
  539. possono essere utilizzati per controllare in modo esplicito l'accesso
  540. di client remoti alle risorse di sistema, alle risorse definite
  541. dall'utente o ai dati. Questi oggetti guida vengono forniti
  542. dall'oggetto di sistema CLSID_DCOMAccessControl, che implementa
  543. l'interfaccia IAccessControl.
  544.  
  545. IAccessControl va utilizzato per gestire le autorizzazioni relative
  546. alla protezione in modo programmatico, quando si gestisce la
  547. portabilitα tra Windows 95/98 e Windows NT. L'oggetto
  548. CLSID_DCOMAccessControl Φ disponibile in tutte le versioni di DCOM95 e
  549. in Windows NT 4.0 con Service Pack 2 o versione successiva. Per
  550. ulteriori informazioni sull'oggetto IAccessControl, fare riferimento
  551. alla documentazione relativa all'SDK della piattaforma.
  552.  
  553. Protezione dell'avvio e dell'accesso 
  554.  
  555. In DCOM95 non Φ possibile controllare l'avvio di codice della
  556. classeserver, perchΘ non Φ supportata la funzione di avvio dei server.
  557. Per poter connettere i client remoti a server o a classi e consentire
  558. loro di poterli utilizzare, Φ necessario che i server e le classi
  559. siano giα attivi. 
  560.  
  561. DCOM95 supporta la capacitα di connettersi a classi e server giα in
  562. esecuzione. La protezione dell'accesso Φ supportata mediante la chiave
  563. del registro di configurazione \APPID\{.}\AccessPermissions ed Φ
  564. regolata mediante l'utilitα DCOMCNFG o in fase di installazione del
  565. codice server. Gli utenti non autenticati potranno utilizzare i server
  566. se la classe viene configurata per supportare connessioni senza
  567. autenticazione (attraverso strumenti di configurazione statici oppure
  568. dinamicamente attraverso la funzione CoInitializeSecurity). ╚
  569. possibile creare elenchi di controllo di accesso arbitrari per
  570. definire gli utenti e i gruppi che possono accedere a determinati
  571. servizi. 
  572.  
  573. Livelli di autenticazione 
  574.  
  575. I client DCOM95 possono effettuare chiamate DCOM utilizzando qualsiasi
  576. livello di autenticazione. I server o i client DCOM95 che ricevono
  577. callback possono accettare chiamate DCOM soltanto utilizzando i
  578. livelli di autenticazione RPC_C_AUTHN_LEVEL_NONE o
  579. RPC_C_AUTHN_LEVEL_CONNECT.
  580.  
  581. Trasmissioni
  582.  
  583. DCOM95 supporta soltanto connessioni di tipo TCP. Se non Φ installato
  584. il protocollo TCP/IP, DCOM95 non sarα in grado di supportare il COM
  585. tra macchine. 
  586.  
  587. Impostazioni del registro di configurazione
  588.  
  589. DCOM95 stabilisce le seguenti chiavi del registro di configurazione in
  590. HKEY_LOCAL_MACHINE\Software\Microsoft\OLE: 
  591.  
  592. EnableDCOM (valore predefinito = "Y"). Abilita DCOM sul computer in
  593. uso. Se impostato su "N", il computer non pu≥ effettuare la
  594. connessione o attivare oggetti su computer remoti e questi ultimi non
  595. possono connettersi a oggetti presenti sul computer locale.
  596. L'impostazione di questo valore su "Y" consente la connessione come
  597. client a oggetti remoti (come nel caso di EnableRemoteConnect='N',
  598. riportato di seguito) o una connessione completa client/server (come
  599. nel caso di EnableRemoteConnect='Y', riportato di seguito). 
  600.  
  601. EnableRemoteConnect (valore predefinito = "N"). Abilita i server COM
  602. per il supporto dei client remoti. Se impostato su "Y", questo valore
  603. consente di passare i riferimenti alle interfacce su oggetti locali a
  604. client remoti e di connettere i client remoti a oggetti in esecuzione.
  605. Se il valore viene impostato su "N", il computer pu≥ connettersi agli
  606. oggetti remoti ma non pu≥ agire da server: infatti, al computer non
  607. viene concessa la possibilitα di connettersi a oggetti in esecuzione. 
  608.  
  609. Inoltre, viene definita la seguente chiave del registro di
  610. configurazione in HKEY_CLASSES_ROOT\CLSID: 
  611.  
  612. {bdc67890-4fc0-11d0-a805-00aa006d2ea4}\InstalledVersion. Contiene il
  613. numero di versione di DCOM95 nel formato "a,b,c,d". Questo valore pu≥
  614. essere utilizzato da Internet Component Download per stabilire se
  615. DCOM95 Φ installato. Questo valore viene aggiunto al registro di
  616. configurazionedurante l'installazione e non deve essere modificato.
  617.  
  618. Utilizzo di Windows 95 come host server remoto
  619.  
  620. Windows 95 pu≥ essere considerato un host server remoto, con le
  621. seguenti eccezioni:
  622. *    Non Φ in grado di avviare le applicazioni. PerchΘ un client
  623.     possa connettersi, il processo server deve essere giα in esecuzione.
  624. *    Se sono richieste connessioni protette, il server (e in caso
  625.     di callback, il client) deve disporre di un controllo dell'accesso a
  626.     livello utente    attraverso il nome del provider di protezione
  627.     impostato. 
  628. *    Il valore del registro di configurazione "EnableRemoteConnect"
  629.     deve essere impostato su "Y".
  630.  
  631. Tutti i test funzionali condotti su DCOM95 sono stati effettuati
  632. utilizzando un provider della protezione di dominio di Windows NT. ╚
  633. possibile che si verifichino dei problemi se si utilizzano altri
  634. provider di protezione.
  635.  
  636. Per stabilire un controllo dell'accesso a livello utente, Φ necessario
  637. che sia installato il file Filesec.vxd. In genere, questo file viene
  638. installato nei computer che eseguono Windows 95 quando si installa il
  639. servizio di condivisione file e stampa.
  640.  
  641. Per abilitare il controllo dell'accesso a livello utente, fare doppio
  642. clic sull'icona Rete nel Pannello di controllo, scegliere la scheda
  643. Controllo di accesso, selezionare l'opzione Controllo di accesso a
  644. livello utente e immettere il nome del dominio di protezione. Questa
  645. operazione pu≥ influire sulla modalitα di condivisione delle directory
  646. in rete dal proprio computer; per ulteriori informazioni, vedere la
  647. documentazione in linea. Se non viene visualizzata la scheda Controllo
  648. di accesso nel pannello di configurazione della rete, Φ necessario
  649. installare un servizio client di rete. Fare clic sul client di rete,
  650. specificando nell'indice della Guida in linea la voce relativa
  651. all'installazione di un client di rete.
  652.  
  653. V. Ridistribuzione
  654. -----------------
  655.  
  656. Per informazioni sulla ridistribuzione di DCOM95, leggere attentamente
  657. le indicazioni contenute nel Contratto di Licenza con l'utente finale
  658. (license.txt).
  659.  
  660. VI. Supporto tecnico e risorse aggiuntive
  661. -----------------------
  662.  
  663. Servizio Supporto Tecnico Clienti
  664.  
  665. Per qualsiasi domanda riguardante un prodotto Microsoft: 
  666.  
  667. Consultare la documentazione ed altro materiale stampato incluso nella confezione del prodotto. 
  668. Consultare la Guida in linea. 
  669. Consultare i file LEGGIMI presenti nei dischi del prodotto. Questi file contengono informazioni generali divenute disponibili dopo la stampa dei manuali. 
  670. Consultare le informazioni tecniche disponibili su Internet allÆindirizzo http://www.microsoft.com/italy/support/ 
  671. Se non si trova una soluzione, Φ possibile ricevere informazioni su come ottenere assistenza per i prodotti contattando la filiale Microsoft del proprio paese.
  672.  
  673. Servizi di supporto Microsoft 
  674.  
  675. I servizi di supporto Microsoft, ove disponibili, offrono unÆampia gamma di scelte e accesso ad un supporto tecnico completo e di alta qualitα. Microsoft riconosce che le esigenze di supporto variano da utente a utente, per questo Microsoft consente di scegliere lÆassistenza pi∙ adatta alle proprie esigenze, con opzioni che vanno dai servizi accessibili via Internet a programmi di assistenza annuale.
  676.  
  677. I servizi di supporto Microsoft sono soggetti ai prezzi, termini e condizioni Microsoft validi in ogni paese al momento in cui un servizio viene usato e sono soggetti a cambiamenti senza preavviso.
  678.  
  679. Chiamare la filiale Microsoft
  680.  
  681. Prima di chiamare, accertarsi di avere a portata di mano la documentazione del prodotto e di trovarsi in prossimitα del computer. Potrebbe inoltre essere necessario fornire le seguenti informazioni: 
  682.  
  683. Il numero di versione del prodotto Microsoft utilizzato e il numero di serie, se disponibile. 
  684. Il tipo di hardware di cui si dispone, compreso lÆhardware di rete, se esistente. 
  685. Il sistema operativo in uso. 
  686. Il contenuto esatto dei messaggi visualizzati. 
  687. La descrizione dellÆoperazione che si stava eseguendo quando si Φ verificato il problema. 
  688. Il modo in cui si Φ tentato di risolvere il problema. 
  689. Microsoft fornisce un servizio gratuito di assistenza tecnica telefonica, riservato agli utenti registrati per un periodo limitato, su tutte le problematiche di installazione e sulle funzionalitα di pi∙ frequente utilizzo. Chi acquista un prodotto Microsoft pu≥ avvalersi di tale servizio telefonando al numero 02 - 70 398 398. Informazioni relative ad altre forme di supporto tecnico si ottengono telefonando al Servizio Clienti che risponde allo stesso numero.
  690.  
  691. Per lÆItalia: Microsoft 
  692. Centro Direzionale S. Felice
  693. Palazzo A
  694. Via Rivoltana, 13
  695. 20090 Segrate MI
  696. Telefono: 02 - 703921
  697. Fax: 02 - 70392020
  698. Servizio Clienti Microsoft: 02 - 70398398 
  699. Indirizzo Internet: http://www.microsoft.com/italy/
  700.  
  701. Supporto tecnico gratuito
  702.  
  703. I newsgroup rappresentano una grande opportunitα per ottenere supporto
  704. gratuito qualificato. Se il tempo e le risorse lo consentono, gli
  705. sviluppatori, i responsabili di programmi, i tecnici del supporto e
  706. dei laboratori di test di Microsoft raccolgono le domande rivolte al
  707. sito e rispondono alle questioni oppure forniscono informazioni
  708. dettagliate. Non Φ assolutamente garantita una risposta da Microsoft
  709. alle domande formulatenei newsgroup. 
  710.  
  711. Per rivolgere domande su DCOM95, Φ possibile utilizzare i seguenti
  712. newsgroup: 
  713. *    comp.os.ms-windows.programmer.ole 
  714. *    microsoft.public.win32.programmer.ole
  715.  
  716. La lista di distribuzione DCOM rappresenta un'altra buona opportunitα
  717. per ottenere supporto gratuito. Il vantaggio di una lista di
  718. distribuzione Φ che attraverso questa lista Microsoft fornisce in
  719. anteprima le informazioni relative a un determinato argomento. Anche
  720. in questo caso si tratta di un supporto qualificato e sebbene la lista
  721. sia monitorata con continuitα dallo staff Microsoft, non Φ
  722. assolutamente garantita una risposta alle domande formulate. 
  723.  
  724. Per ulteriori informazioni sulla lista di distribuzione DCOM, visitare
  725. il sito Web corrispondente all'indirizzo: 
  726.     http://www.microsoft.com/sitebuilder/resource/mail.asp
  727.  
  728. Invio di commenti e suggerimenti
  729.  
  730. Inviare qualsiasi commento o informazione sui problemi riscontrati
  731. alla lista di distribuzione DCOM. 
  732.  
  733. Risorse aggiuntive
  734.  
  735. Ulteriori informazioni su DCOM sono disponibili presso la home page
  736. DCOM all'indirizzo http://www.microsoft.com/com/ (informazioni in
  737. lingua inglese)
  738.  
  739. VII. Elenco di file
  740. --------------------
  741.  
  742. In questa tabella sono elencati i numeri di versione dei file
  743. distribuiti con DCOM95.
  744.  
  745. oleaut32.dll     2.40.4273
  746. secur32.dll      4.10.1999
  747. compobj.dll      2.3.2
  748. ole2.dll         2.3.2
  749. ole32.dll        4.71.2900
  750. olecnv32.dll     4.71.2900
  751. olethk32.dll     4.71.2900
  752. rpcltc1.dll      4.71.2900
  753. rpcltc5.dll      4.71.2900
  754. rpcltccm.dll     4.71.2900
  755. rpclts5.dll      4.71.2900
  756. rpcltscm.dll     4.71.2900
  757. rpcns4.dll       4.71.2900
  758. rpcrt4.dll       4.71.2900
  759. rpcss.exe        4.71.2900
  760. storage.dll      2.3.2
  761. stdole2.tlb      2.40.4273
  762. stdole32.tlb     2.1
  763. imagehlp.dll     4.00
  764. dllhost.exe      4.71.2900
  765. comcat.dll       5.0
  766. iprop.dll        4.00
  767. rpcmqcl.dll      4.71.2900
  768. rpcmqsvr.dll     4.71.2900
  769. olepro32.dll     5.0.4273
  770. asycfilt.dll     2.40.4273
  771. dcom2w98.dll     2.10.35.35
  772.  
  773. In questa tabella sono elencati i numeri di versione dei file
  774. distribuiti con DCM95CFG.
  775.  
  776. dcomcnfg.exe     5.00.1603.0
  777. ciscnfg.exe      4.71.2618
  778.  
  779.